export const setupChartAnimation = (myChart) => {
  let currentIndex = -1 // 当前高亮索引
  const option = myChart.getOption() // 获取图表配置项
  const dataLength = option.series[0].data.length // 数据项数量
  let intervalId = null // 定时器 ID

  // 启动动画
  function startInterval() {
    intervalId = setInterval(() => {
      // 取消之前的高亮
      myChart.dispatchAction({
        type: 'downplay',
        seriesIndex: 0,
        dataIndex: currentIndex
      })

      // 更新当前索引
      currentIndex = (currentIndex + 1) % dataLength

      // 高亮当前数据项
      myChart.dispatchAction({
        type: 'highlight',
        seriesIndex: 0,
        dataIndex: currentIndex
      })

      // 显示 tooltip
      myChart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: currentIndex
      })
    }, 3000)
  }

  // 停止动画
  function stopInterval() {
    if (intervalId) {
      clearInterval(intervalId)
      intervalId = null
    }
  }

  // 初始化启动动画
  startInterval()

  // 监听鼠标事件
  myChart.on('mouseover', () => {
    stopInterval()
  })

  myChart.on('mouseout', () => {
    startInterval()
  })

  // 提供手动停止动画的方法（如果外部需要控制）
  return {
    start: startInterval,
    stop: stopInterval
  }
}




